// 1. 引入flyio
import FlyIo from 'flyio/dist/npm/wx'
import store from '../store'

// 2. 创建新的 FlyIO 实例
const http = new FlyIo() 

// 2. 配置基地址
// http.config.baseURL = process.env.VUE_APP_BASE_URL+ 'app.ximspace.com'
http.config.baseURL = process.env.VUE_APP_BASE_URL + 'app.mingchengwl.top'

// 3. 设置延时
http.config.timeout = 5000

// 4. 请求拦截器
http.interceptors.request.use((config) => {
  // 5.1设置信息提示
  // uni.showLoading({
  //   title: '加载中',
  //   mask: true,
  // })

  return config
})

// 5. 响应拦截器
http.interceptors.response.use(
  (res) => {
    // 5.1 关闭消息提示
    // uni.hideLoading()
    const { code, msg } = res.data
    if (code === 10003 && msg === 'not_balance') {
      return new Promise((resolve, reject) => reject(new Error(msg)))
    }
    // 5.2 数据剥离
    return res.data
  },
  (err) => {
    // 5.3 在请求错误时关闭消息提示
    // uni.hideLoading()

    // 5.4 抛出错误
    return Promise.reject(err)
  }
)

/**
 * 合并请求的默认对象
 * @param {*} data 请求参数
 */
const assignData = (data) => {
  return Object.assign({}, store.state.user.defaultParams, data)
}

export { http, assignData }
